package com.zzyl.service;

import com.zzyl.base.PageBean;
import com.zzyl.dto.UserDto;
import com.zzyl.vo.UserVo;

import java.util.List;

/**
 * 用户表服务类
 */
public interface UserService {

    /**
     * 分页查询
     *
     * @param pageNum  书籍页码
     * @param pageSize 页面大小
     * @param userDto  用户dto
     * @return {@code PageBean<UserVo> }
     * @author 16203
     */
    PageBean<UserVo> page(Integer pageNum, Integer pageSize, UserDto userDto);

    /**
     * 创建用户
     *
     * @param userDto 用户dto
     * @author 16203
     */
    void createUser(UserDto userDto);

    /**
     * 更新用户
     *
     * @param userDto 用户dto
     * @author 16203
     */
    void updateUser(UserDto userDto);

    /**
     * 去除
     *
     * @param userIds 用户ID
     * @author 16203
     */
    void remove(String userIds);

    /**
     * 已启用
     *
     * @param id     身份证件
     * @param status 地位
     * @author 16203
     */
    void isEnable(Long id, String status);

    /**
     * 用户列表
     *
     * @param userDto 用户dto
     * @return {@code List<UserVo> }
     * @author 16203
     */
    List<UserVo> list(UserDto userDto);

    /**
     * 重置密码
     *
     * @param userId 用户id
     * @author 16203
     */
    void resetPasswords(String userId);

    /**
     * 当前用户
     *
     * @return {@code UserVo }
     * @author 16203
     */
    UserVo currentUser();
}
